import java.io.ObjectStreamClass;
import java.util.Objects;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Lenovo
 * Date: 2025-03-31
 * Time: 21:38
 */
class Student {
    String name;
    int age;
    int sno;

    public Student(String name, int age, int sno) {
        this.name = name;
        this.age = age;
        this.sno = sno;
    }

    // 重写equals()方法（仅比较name和age字段），使得认为两个学生对象只要 name 和 age 相同，就是同一人
    @Override
    public boolean equals(Object obj) {
        // 1. 1. 检查是否为同一对象（地址相同直接返回true）
        if (this == obj) return true;
        // 2. 检查 null 和类型
        if (obj == null || getClass() != obj.getClass()) return false;
        // 3. 安全类型转换（此时obj一定是Student类型）
        Student student = (Student) obj;
        //  4. 比较关键字段：name和age（sno不参与比较）
        return Objects.equals(name, student.name) && Objects.equals(age,student.age);
    }
    // 重写 hashCode()
    @Override
    public int hashCode() {
        return Objects.hash(name, age);// 与 equals() 使用相同字段
    }
}